<?php
/* Criando diretorio para os arquivos*/
$diretorio = 'action';
mkdir($diretorio);
chdir($diretorio);

/* Criando as classes(objetos referentes as tabelas do banco) */
for ($i = 0; $i < count($objDataBase->tabelas); $i++) {
    $tabela = $objDataBase->getTabela($i);
    $objTabela = new Tabela($tabela);
    $nomePasta = Util::nomeDbToAtributo($objTabela->getNomeTabela());
    $nomeTabela = Util::nomeDbToClasse($objTabela->getNomeTabela());
    
    //Criando a pasta da tabela
    $diretorio = $i > 0 ? '../' : '';
    $diretorio .= $nomePasta;
    mkdir($diretorio);
    chdir($diretorio);

    //index.php
    $arquivo = 'index.php';
    $conteudo = CriarBackend::criarIndex($objTabela);
    GravarArquivo::execute($arquivo, $conteudo);
    
    /* Entity */
    $arquivo = 'imports.inc.php';
    $conteudo = CriarBackend::criarImports($objTabela);
    GravarArquivo::execute($arquivo, $conteudo);
    
    /* .htaccess */
    $arquivo = '.htaccess';
    $conteudo = CriarBackend::criarHtaccess($objTabela);
    GravarArquivo::execute($arquivo, $conteudo);
    
    //Criando a pasta para as classes MVC
    $diretorio = 'classes';
    mkdir($diretorio);
    chdir($diretorio);
    
    /* Controller */
    $arquivo = $nomeTabela . 'Controller.class.php';
    $conteudo = CriarBackend::criarController($objTabela);
    GravarArquivo::execute($arquivo, $conteudo);
    
    /* Model */
    $arquivo = $nomeTabela . 'Model.class.php';
    $conteudo = CriarBackend::criarModel($objTabela);
    GravarArquivo::execute($arquivo, $conteudo);
    
    /* ServiceDao */
    $arquivo = $nomeTabela . 'ServiceDao.class.php';
    $conteudo = CriarBackend::criarServiceDao($objTabela);
    GravarArquivo::execute($arquivo, $conteudo);
    
    //Voltando para o diretório do index
    chdir('../');
}
?>